package models

import (
	"github.com/goravel/framework/database/orm"
	"goravel/app/models/common"
)

type Comment struct {
	orm.Model
	Cid               string      `gorm:"column:cid" form:"cid" json:"cid"`
	AwemeID           string      `gorm:"column:aweme_id" form:"aweme_id" json:"aweme_id"`
	User              common.User `gorm:"column:user;serializer:json" form:"user" json:"user"`
	Text              string      `gorm:"column:text" form:"text" json:"text"`
	DiggCount         int         `gorm:"column:digg_count" form:"digg_count" json:"digg_count"`
	ReplyID           string      `gorm:"column:reply_id" form:"reply_id" json:"reply_id"`
	UserDigged        int         `gorm:"column:user_digged" form:"user_digged" json:"user_digged"`
	TextExtra         string      `gorm:"column:text_extra" form:"text_extra" json:"text_extra"`
	LabelText         string      `gorm:"column:label_text" form:"label_text" json:"label_text"`
	LabelType         int         `gorm:"column:label_type" form:"label_type" json:"label_type"`
	ReplyCommentTotal int         `gorm:"column:reply_comment_total" json:"reply_comment_total" label:"回复此评论的总数"`
	ReplyToReplyID    string      `gorm:"column:reply_to_reply_id" json:"reply_to_reply_id" label:"回复的回复的评论 ID"`
	IsAuthorDigged    bool        `gorm:"column:is_author_digged" json:"is_author_digged" label:"作者是否点赞此评论"`
	StickPosition     int         `gorm:"column:stick_position" json:"stick_position" label:"置顶位置"`
	UserBuried        bool        `gorm:"column:user_buried" json:"user_buried" label:"用户是否屏蔽此评论"`
	LabelList         string      `gorm:"column:label_list" json:"label_list" label:"标签列表"`
	IsHot             bool        `gorm:"column:is_hot" json:"is_hot" label:"是否热门评论"`
	TextMusicInfo     string      `gorm:"column:text_music_info" json:"text_music_info" label:"文本音乐信息"`
	ImageList         string      `gorm:"column:image_list" json:"image_list" label:"图片列表"`
	IsNoteComment     int         `gorm:"column:is_note_comment" json:"is_note_comment" label:"是否为笔记评论"`
	IPLabel           string      `gorm:"column:ip_label" json:"ip_label" label:"IP 所属地区标签"`
	CanShare          bool        `gorm:"column:can_share" json:"can_share" label:"能否分享此评论"`
	ItemCommentTotal  int         `gorm:"column:item_comment_total" json:"item_comment_total" label:"作品的评论总数"`
	Level             int         `gorm:"column:level" json:"level" label:"等级"`
	VideoList         string      `gorm:"column:video_list" json:"video_list" label:"视频列表"`
	SortTags          string      `gorm:"column:sort_tags" json:"sort_tags" label:"排序标签"`
	IsUserTendToReply bool        `gorm:"column:is_user_tend_to_reply" json:"is_user_tend_to_reply" label:"用户是否倾向于回复此评论"`
	ContentType       int         `gorm:"column:content_type" json:"content_type" label:"内容类型"`
	IsFolded          bool        `gorm:"column:is_folded" json:"is_folded" label:"是否折叠"`
	EnterFrom         string      `gorm:"column:enter_from" json:"enter_from" label:"进入来源"`
	ReplyComment      []Comment   `gorm:"-" json:"reply_comment"`
}

// 获取子回复评论
func (c *Comment) GetChildren() []Comment {
	if len(c.ReplyComment) > 0 {
		return c.ReplyComment
	}
	return []Comment{}
}
